package com.icoolkj.ms.rbac.service;

import com.icoolkj.ms.api.auth.bo.UserInfoInTokenBO;
import com.icoolkj.ms.rbac.bo.UriPermissionBO;

import java.util.List;
import java.util.Set;

public interface ISysPermissionService {

    /**
     * 获取某个类型用户的所有权限列表（有缓存）
     * @param userId 用户id
     * @param userType 用户类型
     * @return 权限列表
     */
    List<String> getUserMenuPermissions(Long userId, String userType);

    /**
     * 清除用户权限缓存
     * @param userId 用户id
     * @param userType 用户类型
     */
    void clearUserPermissionsCache(Long userId, String userType);

    /**
     * 根据用户类型，获取该类型用户拥有的所有权限数据
     * @param userType 用户类型
     * @return uri权限列表
     */
    List<UriPermissionBO> listUriPermissionInfo(String userType);

    List<String> selectRoleKeyListByUserId(Long userId, String userType);

}
